理解路徑依賴對技術導入的影響,並認識到技術變革的現實面。
在軟體開發的世界中,新技術不斷湧現,若無法成功導入新技術,與時俱進,那麼如何成為十倍工程師呢?但導入技術的過程總是充滿各種挑戰,我想與你分享一個成功與一個失敗的案例。
當我們第一次進入職場並開始接觸程式設計時,如果一開始沒有養成撰寫測試程式的習慣,隨著工作經驗的累積,這種意識就會逐漸根深蒂固。時間久了,甚至會讓人覺得測試程式其實並不必要。
畢竟,過去在沒有撰寫測試的情況下,工作依然能順利完成,也似乎沒有出現什麼重大問題。
我第一次接觸測試,是在公司內,一位資深工程師強烈倡導這個概念,並寫了一些測試範例給我看。他告訴我,這樣寫程式會更快。然而,他寫的測試程式範例,只能適用於理想環境,而公司的程式碼,早已變成一團「義大利麵」,根本沒那麼容易加測試。
後來,這位積極宣導測試開發的工程師,由於工作進度不如預期,被老闆開除。這件事讓我對開發應該要寫測試的第一印象,變得更加負面。
第二次接觸測試開發,情況稍有不同。這次是一位新來的主管,他是老闆在念碩班時期的實驗室學弟,技術能力非常強,老闆三顧茅廬才把他請來。以我合作過的上百位工程師來說,他的技術水平可以排進前五。
與之前的資深工程師不同的是,這位主管並沒有像傳教士一樣強推這個方法,而是自己默默實踐。他從重構商業邏輯複雜、且容易出錯的程式開始,並告訴我們可以這樣做,但是否跟進則由我們自行決定。
後來,另一位同事勇敢跟進,開始寫了一些測試程式,但很快也遇到困難。他們兩人討論後的結論是,現有的 codebase 技術債太多,全面補寫測試實在太困難,只能針對關鍵部分補寫測試,其餘部分則暫時不管。
若團隊早期未建立寫測試程式的習慣,將導致系統變得難以維護。即使在後期嘗試導入,也會遇到了很大的技術債壓力,無法輕易改變現狀。
路徑依賴理論(Path Dependence)是一個經濟學理論,指的是當一個系統或組織在某條特定的路徑上運行得越久,改變的難度就會越大,因為過去的決策與投入的資源會限制未來的選擇。